問題描述

二元搜尋樹回顧

您的任務是實作一個支援四種關鍵操作的二元搜尋樹。

  • 操作次數為 $N$,其中 $1 \le N \le 2 \cdot 10^5$。
  • ins k: 將整數鍵 $k$ 插入二元搜尋樹中。若 $k$ 已存在,則此操作不執行任何動作。
  • find k: 搜尋鍵 $k$。若存在則輸出「true」,否則輸出「false」。
  • succ k: 找出 $k$ 的後繼者——樹中嚴格大於 $k$ 且最小的鍵。若不存在則輸出「null」。
  • pred k: 找出 $k$ 的前驅者——樹中嚴格小於 $k$ 且最大的鍵。若不存在則輸出「null」。
  • 關鍵假設:對於後繼者與前驅者查詢,鍵 $k$ 確定會出現在樹中。